This is a freeware utility that allows full editing of FME's and WAX's for the Lucas Arts game Dark Forces. It is expected that the Lucas Arts game Outlaws, which uses a modified version of the Dark Forces engine, will use WAX's as well so hopefully you will be able to use this utility with that game as well.
Who needs it?
Anyone who has a Macintosh, the game Dark Forces (or Outlaws hopefully), and the desire to create their own graphics.
What do I need to know to use it?
It would help you tremendously to have a good understanding of the DF file types, especially WAX's. At the moment these are being relocated, but they should appear soon at Ackbar's Dark Forces HomePage (http://www.muzik.com/ryloth/index.html).
How does it work?
When you first run the program, it will ask you to find your DF Data Folder, because it needs to read from certain files in that folder. If you don't have the full version of DF installed on your hard drive, you should select the DF Data Folder that is on the CD-Rom. You will then have to have the CD mounted whenever you run the program.
FME's:
Opening FME's:
To open a FME from Dark Forces, select "Open FME from DF Gob" from the file menu. This will bring up a dialog box allowing you to pick from all the FME's in DF. To open a FME from another GOB, select "Open FME from Gob" from the file menu. This gives you a standard file loading dialog. Find the GOB file you want to open from and select. You will then see the same dialog you get when you open a FME from the DF GOB. To open a FME from an individual FME file, select "Open FME" from the file menu and find the FME file you want to load.
Loading PICT's as FME's:
To open a PICT as a FME simply select "Open PICT" from the file menu and select the PICT you want to load. It is then loaded and ready to be saved as a FME.
Saving FME's:
To save a file as a FME select the FME saving option you want from the file menu. You can either save FME files by themselves, or inside of a GOB. WARNING!! If you try to save a file into a GOB under a name that is already in the GOB, the other file will not be replaced, leading to very unpredictable results. I recommend that you save files individually and then use one of the GOBbing programs or Brad Oliver's level editor to put the file into a GOB.
Saving PICT's:
You can save an open file as a PICT by simply selecting that option from the file menu.
WAX's:
WAX's are quite complex in structure. To see just how complex, View a WAX (try the Phase3x) and then select WAX Stats… from the Attributes menu. At the dialog, click the Text Dump button and save the file. This produces a Simple Text file (it may be too big to view in Simple Text) of the internal headers of a WAX. (note: I used this option for debugging purposes, but left it in because some users may find it useful when building WAX's that are similar to the original WAX's.)
Building a New WAX:
To build a new WAX, you must duplicate this structure. I know, it looks horrible, but using my program, you will not need to crunch any numbers(hopefully) or write huge text files. All you need to do to create a new WAX is to duplicate the folder structure produced by the program when it extracts a WAX. This consists of a main folder containing a number of subfolders representing the actions that a WAX does. An Action folder contains several subfolders representing the different angles from which the action will be viewed. Each Angle folder contains some number of PICT files that are the series of frames of animation for that Action when viewed from that Angle. Sound confusing? Unless you are very familiar with WAX's already, it probably does. The best way to get unconfused will be for you to disassemble already made WAX's and to just experiment and see what you get. There are only a few rules you must follow:
1. Each of the Action folders must be named "ActionN ", where N is the number of the action, from 0 to 31. Originally these folders were named according to what that action most often was, but since WAX's do not all follow the same scheme, this seemed more appropriate.
2. Each of the Angle folders must be named a multiple of 11.25 (from 0 to 348.75). This is because each action is divided into 32 different angles from which it is viewed. In the game's original WAX's, only at most eight of those angles are actually unique(0, 45, 90, 135, 180, 225, 270, and 315). You will notice that when you extract a WAX, there will not be 32 angle folders in each action. This is because the program eliminates redundant angles. You are allowed to do the same thing when creating your WAX's. If you only include one angle folder in an action folder, that will represent all the angles of that action. If you include eight angle folders named 0, 45, 90, 135, 180, 225, 270, and 315, the program will build the angle structure like the original WAX's in the game. If you put any other number or names of angle folders inside an action folder (there must always be a folder named 0), the angles of the action will be set up such that for each folder X the program finds, all angles in between that folder and the next highest angle folder will be the same as folder X. The only exception is that for the folder named 0, the number of angles missing between it and the next higher folder will be mirrored so that there are the same number of angles between 0 and the highest angle folder. If this seems like a lot to take in, your right. For an example of this, disassemble the Phase3x.WAX and look at the angle structure produced for Action14. Then look at the corresponding action in the WAX. Hopefully this will illustrate better what I have tried to explain.
3. Each of the PICT frames must be named a number starting with 1 and going up to at most 32. The name may also be a number followed with a ".f" to indicate that the frame should be flipped.
And now, some tips:
1. Use Alias's. WAX's contain many cross referenced headers and frames (take a look at a text dump). Since many frames or even a series of frames (angles) in different parts of a WAX are often identicle, you can (and should) shrink the size of your WAX by eliminating these duplicates. To do this, simply make an alias of the frame or angle folder that you want duplicated and place it in the other place, renaming it appropriately. When the program builds the new WAX, it will recognize the alias files and make the appropriate links inside the WAX. Again, the best example for this is to disassemble a WAX and compare the disassembled folder/file structure with the WAX itself.
2. Disassemble the WAX whose logic you are going to use so that you can copy it's folder/file structure for your WAX.
3. Experiment. Disassemble, play with, and reassemble WAX's that are already made so that you can get a better idea of how things work.
Good luck.
Viewing a WAX:
You can view a WAX from the DF GOB, another GOB, or from the individual GOB file by selecting the corresponding options from the file menu. When you view a WAX, you can't have any FME's or other WAX's open. The main reason for this is that WAX's take up quite a bit of memory. Viewing a WAX allows you to look through all the different FME's embedded in the WAX and extract individual FME's, as well as change the FME attributes. You should use this option to edit your WAX's after you have intially built them.
Extracting a WAX:
To disassemble an entire WAX file into its individual frame files (saved as PICT's), select one of the extracting options from the file menu. This is useful if you want to get at several of the WAX's FME files, as well as for understanding WAX structure. When you build your own WAX, you should disassemble the WAX whose logic you are going to use and copy the directory structure of the folders created. You will need to construct a similar folder structure when making a WAX from scratch.
Saving a WAX:
Just like FME's, you can save WAX's by themselves or inside a GOB. When you are viewing the WAX, select the appropriate save option from the file menu.
Palettes:
The palette menu contains options for each of the individual palettes built into the game as well as the ability to load an external palette. You should try to make you're FME's and WAX's look the same under every palette so that they can be used on any level. An example of a WAX that is limited by it's palette is the Kell Dragon. It looks fine when viewed with the palette from Jabba's Ship, but when seen under any other palette, it looks bad. This is something you should try to avoid if possible.
Attributes:
The attributes menu contains several options for configuring your FME's and WAX's.
Set Offsets:
This will set the x,y offsets of a FME (by itself, or in a WAX). These offsets affect how a FME is seen in the game, in that they adjust it up/down, left/right from the bottom left corner. When you create a new FME, the program attempts to set these values appropriately. You may however wish to edit these values depending on your FME. To edit a FME's offsets in a WAX, view the WAX and then click down to the proper FME and select the option from the menu.
Set Frame Rate:
This applies only to WAX's. The frame rate is set at the Action level of a WAX. To set it, click on the appropriate Action button to open that action and then select this option from the file menu.
Set World Width/Height:
This applies only to WAX's. These values are set at the Action level and they determine the size of a WAX in relation to the Dark Forces environment. For example, the Remote.WAX appears to be as big as the Phase 3 Dark Trooper, but in the game this is not the case. This is caused by the settings of these values. Examine the game's WAX's to find appropriate values. The default that is set when building a new WAX is 65536.
Flipped:
This flag is set when you want a FME to be flipped across the Y axis. While you can use this for individual FME's, it is most useful with FME's that are in WAX's because you can, for example, flip the FME for the Angle 45 to make it the Angle 315 (this is what the game's own WAX's do). Thus, you can have one FME for the two different angles and make your WAX smaller.
Compressed:
This flag is set when you want to compress a FME. For individual FME's it does not save much, but for FME's within WAX's it can save you quite a bit of space. As a rule, you should probably always set this unless, for those few FME's that are fairly small, compressing the FME actually makes the file bigger. When you build a WAX, you are given the option of automatically compressing all the FME's.
WAX Stats:
This menu option will let you see how many Actions, Sequences(Angles), FME headers, and actuall FME's there are in the open WAX. In the dialog that opens is also the option to get a text dump of the open WAX. This can be useful when creating new WAX's.
New features/bug fixes:
- You can now build WAX's!!!!
- You can now load an external palette (by itself or from a GOB) in the palette menu.
Known bugs:
- When you switch from program back to finder or other program, the palette still
looks funny. (Not sure how to fix this)
- Doesn't do a great job of saving files into GOB's (described above). I recommend that
you use a GOBbing utility or Brad Oliver's level editor to put your FME's and WAX's
into GOB's.
Things on the drawing board:
- Option to animate the WAX while it is being viewed so you can get a better feel for
the animation and frame rate.
- ??? Suggestions?
Thanks:
- Todd Weber for letting me borrow his books and his Inside Mac CD and for
his encouragement.
- Scott McCullar and Chris a.k.a. "Ye Olde Honourable Hackre" for their
suggestions.
- Allen G. Newman for the great splash screen in the About Box.
- Yves Borckmans, Jereth Kok, David Lovejoy, and Alexei Novikov for the DF Specs.
- Anyone else I can't remember, sorry.
Sorry this has taken so long, but it is finally done. :-)
If you have any suggestions for improvements, or if you have any bug reports, please send them to me at cwright@uclink4.berkeley.edu
Disclaimer:
I claim no responsibility for anything, including lost data, trashed hard drives, etc.